gtkwindowhandle: Only claim gesture on action
authorCarlos Garnacho <carlosg@gnome.org>
Mon, 13 Jul 2020 13:44:58 +0000 (15:44 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Mon, 13 Jul 2020 13:48:12 +0000 (15:48 +0200)
The press gesture does not need to set claimed state just for n-press
tracking, it will however reset all other click gestures on each press
if the event gets propagated all the way up.

Fixes tracking of multi-press in gestures in widgets that are children
of the window handle. E.g. the headerbar listview in the "File browser"
gtk4-demo demo.

gtk/gtkwindowhandle.c

index 3d28d28b2f8aa83f37f37e080cc92500d31ba871..437a13c7c62f31d9704d47bb8de1dd240cea1b89 100644 (file)
@@ -351,10 +351,11 @@ click_gesture_pressed_cb (GtkGestureClick *gesture,
     {
     case GDK_BUTTON_PRIMARY:
       if (n_press == 2)
-        perform_titlebar_action (self, event, button, n_press);
-
-      gtk_gesture_set_sequence_state (GTK_GESTURE (gesture),
-                                      sequence, GTK_EVENT_SEQUENCE_CLAIMED);
+        {
+          perform_titlebar_action (self, event, button, n_press);
+          gtk_gesture_set_sequence_state (GTK_GESTURE (gesture),
+                                          sequence, GTK_EVENT_SEQUENCE_CLAIMED);
+        }
       break;
 
     case GDK_BUTTON_SECONDARY: